The rapidly growing portable electronics market, e.g. cellular phones, laptop computers, and wearable devices, are an integral facet of modern life. The multitude of portable devices represents one of the largest potential market opportunities for next generation electronic components. These devices have unique attributes that have significant impacts on their integration, in that they must be generally small, lightweight, energy efficient, rich in functionality, and they must be produced in high volumes at relatively low cost.
An important technology within the electronics components industry is the serial peripheral interface. Serial peripheral interfaces are relied upon across many markets, including serial memory, data conversion, displays, communications, real time clocks, human interface, microelectromechanical systems, temperature sensors, and controllers.
In recent years, the serial interface has become more prevalent than the parallel interface by offering a low pin count, low power consumption, and smaller packages. The serial interface typically uses a two wire configuration and sometimes a third wire for clock signals. Other wire arrangements can be found but a clock signal is always present.
The increasing popularity of the serial interface has led to the development of the serial peripheral interface protocol. The serial peripheral interface protocol standardizes the pins for serial interface devices and defines a group of such pins as a serial peripheral interface bus.
In many serial peripheral interface system designs there is a single master device and multiple slave devices that the master device is required to communicate with. The master device is typically a microprocessor or field-programmable gate array device, while the slave devices can be integrated circuits ranging from peripherals including Ethernet adapters and USB controllers, to digital and analog converters used for codecs and analog sensors, to memory.
Despite the pervasive use of the serial peripheral interface and the standardizing effect of the serial peripheral interface protocol, many challenges exist with the use of the serial peripheral interface; of particular concern, is the inability to use multiple dissimilar slave devices with a single master device. This problem increases costs of manufacture, design, and implementation while simultaneously decreasing design flexibility since only compatible master devices and slave devices can be used together. Only partial solutions have been developed to address this problem.
One previous development is to provide a master device having multiple slave select pins to create an independent slave configuration. The shortcoming of this development is that many standardized master devices do not have the functionality or available pins to provide the additional slave select pins.
Another previous development is to daisy chain multiple slave devices together and shift data across all the devices with additional clocking from the master device. The shortcoming of this development is that the slave devices must be cooperative such that they shift their input data into their output data pin. Further, even with cooperative slave devices the slave types must be the same.
Another previous development includes the mini-serial peripheral interface protocol requiring each slave device to share the same pins controlled by the master device, to decode a first data byte, and to recognize a preset address to respond to. The shortcoming of this development is that very few slave devices recognize the mini-serial peripheral interface protocol and cannot share a serial peripheral interface bus with non mini-serial peripheral interface slave devices.
Solutions have been long sought but prior developments have not taught or suggested any complete solutions, and solutions to these problems have long eluded those skilled in the art. Thus there remains a considerable need for devices and methods that can allow a multiple dissimilar slave devices to share a single master device's serial peripheral interface communication bus.